load("//examples/routeguide:routeguide_test.bzl", "routeguide_test_matrix")

#
# This generates a set of routeguide_test rules, one for each combination of
# client & server. The way most routeguide clients are written, they don't
# actually fail hard if the routeguide procedure does not go as planned.
# Generally, the tests should range between 2-10 seconds.
# If tests are abnormally fast it likely signals an error that should be
# investigated.
#

routeguide_test_matrix(
    name = "routeguide_matrix",
    clients = [
        "//examples/cpp/routeguide:client",
        "//examples/go/routeguide/client:client",
        "//examples/java/routeguide:client",
        "//examples/python/routeguide:client",
    ],
    servers = [
        "//examples/cpp/routeguide:server",
        "//examples/go/routeguide/server:server",
        "//examples/java/routeguide:server",
        "//examples/python/routeguide:server",
    ],
    skip = [
        #"csharp_rust",  # Broken
        #"fsharp_rust",  # Broken
        #"fsharp_js",  # Broken
        "java",  # grpc-java MODULE.bazel broken: https://github.com/grpc/grpc-java/issues/11275
    ],
    tagmap = {
        # Apply per-lang tags
        # "csharp": ["no-sandbox", "manual"],
    },
)
